package com.ruoyi.charge.protocol;

import com.ruoyi.charge.domain.ChargerGun;
import com.ruoyi.charge.model.ManageWebControllerStartPayload;
import io.vertx.core.net.NetSocket;

/**
 * 客户端服务
 *
 * @author laifeng
 * @version 1.0
 * @date 2025/7/16 10:13
 */

public interface IClientService {
    /**
     * 发送登录请求到平台
     */
    void login(NetSocket netSocket, String sn);

    /**
     * 发送充电桩心跳包
     */
    void ping(NetSocket netSocket, String sn);


    /**
     * 计费模型验证请求
     */
    void requestChargingModel(NetSocket netSocket, String ChargerSn);

    /**
     * 充电桩计费模型请求
     */
    void requestChargerChargingModel(NetSocket netSocket, String ChargerSn);


    /**
     * 上传实时检测数据
     */
    void uploadRealTimeData(NetSocket netSocket, String ChargerSn);

    /**
     * 上传实时检测数据
     */
    void uploadRealTimeData(NetSocket netSocket, ChargerGun ChargerGun);

    /**
     * 远程启动充电命令回复
     */
    void remoteChargeStartReply(NetSocket netSocket, ManageWebControllerStartPayload payload);

    /**
     * 充电握手
     */
    void chargeHandshake(NetSocket netSocket, String ChargerSn);

    /**
     * 参数配置
     */
    void parameterConfiguration(NetSocket netSocket, String ChargerSn);

    /**
     * 充电结束
     */
    void chargeEnd(NetSocket netSocket, String ChargerSn, String gunNo);
}
